package cyano.electricadvantage.init;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import cyano.basemetals.registry.CrusherRecipeRegistry;
import cyano.poweradvantage.PowerAdvantage;
import cyano.poweradvantage.RecipeMode;
public abstract class Recipes {
private static boolean initDone = false;
public static void init(){
if(initDone) return;
Blocks.init();
Items.init();
RecipeMode recipeMode = PowerAdvantage.recipeMode;
// Recipes for all recipe modes
OreDictionary.registerOre("blockBrick", net.minecraft.init.Blocks.BRICK_BLOCK);
OreDictionary.registerOre("gunpowder", net.minecraft.init.Items.GUNPOWDER);
GameRegistry.addSmelting(Items.lithium_powder,new ItemStack(Items.lithium_ingot),0.5f);
GameRegistry.addSmelting(Blocks.lithium_ore,new ItemStack(Items.lithium_ingot),0.5f);
CrusherRecipeRegistry.addNewCrusherRecipe("oreLithium",new ItemStack(Items.lithium_powder,2));
CrusherRecipeRegistry.addNewCrusherRecipe("ingotLithium",new ItemStack(Items.lithium_powder,1));
CrusherRecipeRegistry.addNewCrusherRecipe("oreSulfur",new ItemStack(Items.sulfur_powder,4));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Blocks.electric_conduit,6),"xxx","ccc","xxx",'x',"plastic",'c',"ingotCopper"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Blocks.electric_conduit,6),"xxx","ccc","xxx",'x',"rubber",'c',"ingotCopper"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Blocks.electric_conduit,1),"xx","cc",'x',"plastic",'c',"rodCopper"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Blocks.electric_conduit,1),"xx","cc",'x',"rubber",'c',"rodCopper"));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Items.blank_circuit_board,2),"plastic","plateCopper"));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Items.control_circuit,1),Items.blank_circuit_board,"microchip","solder"));
GameRegistry.addSmelting(Items.silicon_blend, new ItemStack(Items.silicon_ingot), 0.5f);
GameRegistry.addSmelting(Items.solder_blend, new ItemStack(Items.solder), 0.5f);
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Items.silicon_blend,1),"sand","dustCarbon"));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Items.solder_blend,3),"dustTin","dustTin","dustLead"));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Items.solder_blend,3),"dustTin","dustTin","dustSilver"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Blocks.led_bar,3),"ggg","xxx","ccc",'g',"paneGlass",'x',"microchip",'c',"wire"));
GameRegistry.addRecipe(batteryRecipe(Items.lead_acid_battery,"ingotLead","sulfur",net.minecraft.init.Items.WATER_BUCKET));
GameRegistry.addRecipe(batteryRecipe(Items.lead_acid_battery,"ingotLead","dustSulfur",net.minecraft.init.Items.WATER_BUCKET));
GameRegistry.addRecipe(batteryRecipe(Items.nickel_hydride_battery,"ingotNickel","dustRedstone",net.minecraft.init.Items.WATER_BUCKET));
GameRegistry.addRecipe(batteryRecipe(Items.alkaline_battery,"ingotIron","gunpowder","ingotZinc"));
GameRegistry.addRecipe(batteryRecipe(Items.lithium_battery,"ingotLithium","dustRedstone","dustCarbon"));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Blocks.electric_track,1),Blocks.electric_conduit, cyano.poweradvantage.init.Blocks.steel_frame));
// non-apocalyctic recipes (high-tech machines cannot be crafted in post-apocalyspe mode)
if(recipeMode != RecipeMode.APOCALYPTIC){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Blocks.photovoltaic_generator,1),"ggg","sss","wuw",'g',"paneGlass",'s',"ingotSilicon",'w',"wire",'u',"PSU"));
}
// recipe-mode specific recipes
if(recipeMode == RecipeMode.TECH_PROGRESSION){
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.integrated_circuit,3),"prp","sss","ccc",'p',"plastic",'s',"ingotSilicon",'r',"dustRedstone",'c',"nuggetCopper"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.integrated_circuit,3),"prp","sss","ccc",'p',"plastic",'s',"ingotSilicon",'r',"dustRedstone",'c',"nuggetTin"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.integrated_circuit,3),"prp","sss","ccc",'p',"plastic",'s',"ingotSilicon",'r',"dustRedstone",'c',"nuggetGold"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.power_supply_unit,1),"wcw"," s ",'w',"wire",'c',"circuitBoard",'s',"plateSteel"));
} else if(recipeMode == RecipeMode.APOCALYPTIC){
CrusherRecipeRegistry.addNewCrusherRecipe(Blocks.steam_powered_generator, new ItemStack(Items.power_supply_unit,1));
CrusherRecipeRegistry.addNewCrusherRecipe(Blocks.arc_furnace, new ItemStack(Items.power_supply_unit,1));
CrusherRecipeRegistry.addNewCrusherRecipe(Blocks.photovoltaic_generator, new ItemStack(Items.power_supply_unit,1));
CrusherRecipeRegistry.addNewCrusherRecipe(Items.power_supply_unit, new ItemStack(Items.control_circuit,1));
CrusherRecipeRegistry.addNewCrusherRecipe(Items.control_circuit, new ItemStack(Items.integrated_circuit,1));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.power_supply_unit,1),"wcw"," s ",'w',"wire",'c',"circuitBoard",'s',"plateSteel"));
} else {
// normal
OreDictionary.registerOre("solder", cyano.basemetals.init.Items.lead_ingot);
OreDictionary.registerOre("solder", cyano.basemetals.init.Items.tin_ingot);
OreDictionary.registerOre("solder", cyano.basemetals.init.Items.silver_ingot);
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.integrated_circuit,3),"sss","ccc",'s',"ingotSilicon",'c',"nuggetCopper"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.integrated_circuit,3),"sss","ccc",'s',"ingotSilicon",'c',"nuggetTin"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.integrated_circuit,3),"sss","ccc",'s',"ingotSilicon",'c',"nuggetGold"));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(Items.blank_circuit_board,2),"plastic","ingotCopper"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.power_supply_unit,1),"wcw"," s ",'w',"wire",'c',"circuitBoard",'s',"ingotSteel"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.power_supply_unit,1),"wcw"," s ",'w',"wire",'c',"circuitBoard",'s',"ingotIron"));
}
// Machine recipes
GameRegistry.addRecipe(electricMachineRecipe(Blocks.steam_powered_generator, "conduitSteam","governor"));
GameRegistry.addRecipe(new ShapedOreRecipe(Blocks.arc_furnace, "bbb","bub","bbb",'b',"blockBrick",'u',"PSU"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.hydroelectric_generator, "sprocket", "sprocket"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.battery_array, "chest"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.rock_crusher, "sprocket", "gemDiamond"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.laser_turret, "gemDiamond", "gemEmerald"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.laser_turret, "gemEmerald", "gemDiamond"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.laser_drill, "blockDiamond"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.fabricator, net.minecraft.init.Blocks.CRAFTING_TABLE));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.growth_chamber, net.minecraft.init.Items.FLOWER_POT, "microchip"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.growth_chamber_controller, net.minecraft.init.Items.FLOWER_POT, "circuitBoard"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.oven, "paneGlass", "PSU"));
GameRegistry.addRecipe(new ShapedOreRecipe(Blocks.electric_switch," L ","pfp",'L',net.minecraft.init.Blocks.LEVER,'p',"wire",'f',"frameSteel"));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.electric_still, net.minecraft.init.Items.BUCKET, net.minecraft.init.Items.BUCKET));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.electric_pump, net.minecraft.init.Blocks.PISTON, net.minecraft.init.Items.BUCKET));
GameRegistry.addRecipe(electricMachineRecipe(Blocks.plastic_refinery, net.minecraft.init.Blocks.PISTON, "sprocket"));
initDone = true;
}
private static ShapedOreRecipe electricMachineRecipe(Block output, Object item){
return new ShapedOreRecipe(output, "uX ","pmp",'X',item,'u',"PSU",'p',"plateSteel",'m',"frameSteel");
}
private static ShapedOreRecipe electricMachineRecipe(Block output, Object item1, Object item2){
return new ShapedOreRecipe(output, "uXY","pmp",'X',item1,'Y',item2,'u',"PSU",'p',"plateSteel",'m',"frameSteel");
}
private static ShapedOreRecipe batteryRecipe(Item output, Object top, Object middle, Object bottom){
return new ShapedOreRecipe(output, "pXp","pYp","pZp",'X',top,'Y',middle,'Z',bottom,'p',"plastic");
}
}